package com.ruoyi.business.service;

import java.util.List;
import com.ruoyi.business.domain.DailyTrainTicket;
import com.ruoyi.business.domain.dto.TrainTicketGroupDTO;
import com.ruoyi.common.core.page.TableDataInfo;

/**
 * 余票信息Service接口
 * 
 * @author ruoyi
 * @date 2025-03-06
 */
public interface IDailyTrainTicketService 
{
    /**
     * 查询余票信息
     * 
     * @param id 余票信息主键
     * @return 余票信息
     */
    public DailyTrainTicket selectDailyTrainTicketById(Long id);

    /**
     * 查询余票信息列表
     * 
     * @param dailyTrainTicket 余票信息
     * @return 余票信息集合
     */
    public List<DailyTrainTicket> selectDailyTrainTicketList(DailyTrainTicket dailyTrainTicket);

    /**
     * 新增余票信息
     * 
     * @param dailyTrainTicket 余票信息
     * @return 结果
     */
    public int insertDailyTrainTicket(DailyTrainTicket dailyTrainTicket);

    /**
     * 修改余票信息
     * 
     * @param dailyTrainTicket 余票信息
     * @return 结果
     */
    public int updateDailyTrainTicket(DailyTrainTicket dailyTrainTicket);

    /**
     * 批量删除余票信息
     * 
     * @param ids 需要删除的余票信息主键集合
     * @return 结果
     */
    public int deleteDailyTrainTicketByIds(Long[] ids);

    /**
     * 删除余票信息信息
     * 
     * @param id 余票信息主键
     * @return 结果
     */
    public int deleteDailyTrainTicketById(Long id);

    /**
     * 按车次编号分组查询余票信息
     *
     * @param dailyTrainTicket 查询条件
     * @return 分组后的结果
     */
    List<TrainTicketGroupDTO> selectDailyTrainTicketGroupByTrainCode(DailyTrainTicket dailyTrainTicket);


    /**
     * 按列车分页查询余票信息
     *
     * @param dailyTrainTicket 查询条件
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @return 分页结果
     */
    TableDataInfo listDailyTrainTicketByTrainGroup(DailyTrainTicket dailyTrainTicket, Integer pageNum, Integer pageSize);
}
